package persistencia;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import dominio.*;

public class RevistaDAO {
	
	public static void insert(Revista revista) throws Exception{
		String SQL="insert into Revista(nombre, emailEditor, dniPersona) values (?, ?, ?)";
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement p=null;
		try {
			bd=Broker.get().getBD();
			p=bd.prepareStatement(SQL);
			p.setString(1, revista.getNombre());
			p.setString(2, revista.getEditor().getEmail());
			p.setString(3, revista.getEditor().getDni());
			p.executeUpdate();
		}
		catch (Exception e) {
			ex=e;
		}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}
	}
	
	public static void delete(Revista revista) throws Exception {
		String SQL="Delete from Revista where nombre=?";
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement p=null;
		try {
			bd=Broker.get().getBD();
			p=bd.prepareStatement(SQL);
			p.setString(1, revista.getNombre());
			p.executeUpdate();
		}
		catch (Exception e) {
			ex=e;
		}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}	
	}
	
	public static Revista newRevista(String nombre) throws Exception {
		Revista result=null;
		String SQL="Select * from Revista where nombre=?";
		Conexion bd=null;
		Exception ex=null;
		PreparedStatement p=null;
		try {
				bd = Broker.get().getBD();
				p = bd.prepareStatement(SQL);
				p.setString(1, nombre);
				ResultSet r = p.executeQuery();
				if (r.next()) {
					result = new Revista(r.getString(1), EditorDAO.newEditor(r.getString(3)));
				} else {
					throw new Exception("La revista con nombre " + nombre+ " no existe");
				}			
		} catch (Exception e) {
			ex = e;
	}
		finally {
			bd.close();
			if (ex!=null)
				throw ex;
		}
		return result;
	}

}
